package com.ktgj.customer.mapper;

import java.util.List;
import com.ktgj.customer.domain.Itinerary;
import com.ktgj.customer.domain.ItineraryMiddle;
import org.apache.ibatis.annotations.Param;

/**
 * 行程定制Mapper接口
 * 
 * @author ruoyi
 * @date 2021-09-01
 */
public interface ItineraryMapper 
{
    /**
     * 查询行程定制
     * 
     * @param itinerary 行程定制ID
     * @return 行程定制
     */
    public Itinerary selectItineraryById(Long itinerary);

    /**
     * 查询行程定制列表
     * 
     * @param itinerary 行程定制
     * @return 行程定制集合
     */
    public List<Itinerary> selectItineraryList(Itinerary itinerary);

    /**
     * 新增行程定制
     * 
     * @param itinerary 行程定制
     * @return 结果
     */
    public int insertItinerary(Itinerary itinerary);

    /**
     * 修改行程定制
     * 
     * @param itinerary 行程定制
     * @return 结果
     */
    public int updateItinerary(Itinerary itinerary);

    /**
     * 删除行程定制
     * 
     * @param itinerary 行程定制ID
     * @return 结果
     */
    public int deleteItineraryById(Long itinerary);

    /**
     * 批量删除行程定制
     * 
     * @param itinerarys 需要删除的数据ID
     * @return 结果
     */
    public int deleteItineraryByIds(Long[] itinerarys);

    /**
     * 行程定制多对多
     * @param itinerary
     * @return
     */
    public List<Itinerary> selectItineraryItineraryOrder(Long itinerary);

    /**
     * 评价中心
     * */
    public List<Itinerary> selectItineraryByCustomerId(@Param("customerId") Long customerId,
                                                       @Param("ordersState") String ordersState);

    /**
     * 评价行程
     * */
    public int updateItineraryByItinerary(@Param("itineraryCustomizeId") Long itineraryCustomizeId,
                                          @Param("itineraryAppraise") String itineraryAppraise,
                                          @Param("itineraryAppraiseContent") String itineraryAppraiseContent,
                                          @Param("dropOff") String dropOff,
                                          @Param("vipRoom") String vipRoom,
                                          @Param("flight") String flight,
                                          @Param("pickUp") String pickUp,
                                          @Param("anonymous") String anonymous,
                                          @Param("ordersState") String ordersState,
                                          @Param("customerId") Long customerId);

    /**
     * 根据id查询信息
     * */
    public Itinerary selectItineraryByitinerary(@Param("itineraryCustomizeId") Long itineraryCustomizeId,
                                                @Param("customerId") Long customerId);

    /**
     * 删除评价
     * */
    public int updateItineraryByitinerary(Long itinerary);

    /**
     * 查看行程
     * @param customerId
     * @param itinerary
     * @return
     */
    public Itinerary queryItineraryByCustomerIds(@Param("customerId") Long customerId,
                                                @Param("itinerary") Long itinerary);

    /**
     * 行程-历史行程
     * @param customerId
     * @return
     */
    public List<Itinerary> queryHistoryIyinerary(Long customerId);

    /**
     * 新建行程
     * */
    public int addItinerary(Itinerary itinerary);

    /**
     * 查看指定行程
     * */
    public Itinerary journeyItinerary(Long itineraryCustomizeId);

    /**
     * 修改状态
     * */
    public int updateStatic(@Param("ordersState") String ordersState, @Param("itineraryCustomizeId") Long itineraryCustomizeId);

    /**
     * 获取会员行程列表
     * */
    public List<Itinerary> journeyList(Long customerId);
}
